//
//  SEGCommonPayViewModel.h
//  SEGViewModel
//
//  Created by 山刘 on 2020/6/15.
//

#import <Foundation/Foundation.h>
#import "PayListRequestModel.h"
#import "SEGDidPaidViewModel.h"

#import <ReactiveObjC/ReactiveObjC.h>
#import <WXApi.h>

#if __has_include(<Commom/SEGBussinessConstHeader.h>)
#import <Commom/SEGBussinessConstHeader.h>
#else
#import "SEGBussinessConstHeader.h"
#endif

NS_ASSUME_NONNULL_BEGIN

@interface SEGCommonPayViewModel : NSObject

/// 点击指定的支付方式[如：微信支付]以后,需要执行的信号。
@property (nonatomic, strong, readonly) RACCommand *freshUICommand;

/// 请求支付列表，并且进行代码指定支付方式(也就是不展示在UI),直接发起支付
/// 目前只用在的业务类型：SEGPayTypeName_QiaoChengHui
@property (nonatomic, strong, readonly) RACCommand *appointPayMethodCommand;

/// 点击指定的支付方式[如：微信支付]以后,需要执行的信号。
@property (nonatomic, strong, readonly) RACCommand *confirmPayStatusCommand;

/// 展示消息提示
@property (strong, nonatomic, readonly) RACSubject *messageSubject;

/// 订单号
@property (nonatomic, strong) NSString* orderIdOracctItemIds;

/// 点击 cell 请求接口所需的请求参数
@property (nonatomic, strong) NSDictionary* dataDic;

/// 不同的支付类型
@property(nonatomic,assign) SEGPayTypeName payTypeName;

/// 支付方式数据源
@property (nonatomic, strong) NSArray* listData;

/// 已经支付完成的VM
@property (nonatomic, strong) SEGDidPaidViewModel* didPaidViewModel;

/// 支付相关接口请求
@property (nonatomic, strong) PayListRequestModel* payListRequestModel;

/// 微信支付
/// @param req 参数
-(void)toWXPayWithPayReq:(PayReq*)req;

/// 微信支付
/// @param params 微信支付参数
-(void)toWXPayWithPayReqJsonData:(NSDictionary*)params;

/// 微信小程序支付
-(void)toWXMiniProgramPay;

/// 直接发起聚合支付
/// 现在使用的业务场景：SEGPayTypeName_CMHK_PayOnLine
-(void)sendToOnlinePay;

@end

NS_ASSUME_NONNULL_END
